home *** CD-ROM | disk | FTP | other *** search
- class classes.CollisionDetection
- {
- function CollisionDetection()
- {
- }
- static function checkForCollision(p_clip1, p_clip2, p_alphaTolerance, p_scope)
- {
- if(p_alphaTolerance == undefined)
- {
- p_alphaTolerance = 255;
- }
- if(p_scope == undefined)
- {
- p_scope = p_clip2._parent;
- }
- var _loc3_ = p_clip1.getBounds(p_scope);
- var _loc2_ = p_clip2.getBounds(p_scope);
- if(_loc3_.xMax < _loc2_.xMin || _loc2_.xMax < _loc3_.xMin || (_loc3_.yMax < _loc2_.yMin || _loc2_.yMax < _loc3_.yMin))
- {
- return null;
- }
- var _loc1_ = {};
- _loc1_.xMin = Math.max(_loc3_.xMin,_loc2_.xMin);
- _loc1_.xMax = Math.min(_loc3_.xMax,_loc2_.xMax);
- _loc1_.yMin = Math.max(_loc3_.yMin,_loc2_.yMin);
- _loc1_.yMax = Math.min(_loc3_.yMax,_loc2_.yMax);
- var _loc8_ = new flash.display.BitmapData(_loc1_.xMax - _loc1_.xMin,_loc1_.yMax - _loc1_.yMin,false);
- var _loc4_ = p_clip1.transform.matrix;
- _loc4_.tx = p_clip1._x - _loc1_.xMin;
- _loc4_.ty = p_clip1._y - _loc1_.yMin;
- _loc8_.draw(p_clip1,_loc4_,new flash.geom.ColorTransform(1,1,1,1,255,-255,-255,p_alphaTolerance));
- _loc4_ = p_clip2.transform.matrix;
- _loc4_.tx = p_clip2._x - _loc1_.xMin;
- _loc4_.ty = p_clip2._y - _loc1_.yMin;
- _loc8_.draw(p_clip2,_loc4_,new flash.geom.ColorTransform(1,1,1,1,255,255,255,p_alphaTolerance),"difference");
- var _loc6_ = _loc8_.getColorBoundsRect(4294967295,4278255615);
- if(_loc6_.width == 0)
- {
- return null;
- }
- _loc6_.x += _loc1_.xMin;
- _loc6_.y += _loc1_.yMin;
- return _loc6_;
- }
- }
-